package com.org.zp.ctrl.payquery;

public class SalaryUtil {
	/**
	 * 
	 * 计算比较薪酬Y轴坐标的时候使用
	 * 
	 * @param num
	 * 
	 * @param type
	 * 
	 * @return
	 */

	public static int getBaseNum(int num, int type) {

		if (num == 0 || num % 400 == 0) { // 如果数字能被400整除,那么就返回

			return num;

		}

		do {

			if (type == 1) { // type=1,说明是计算最小坐标,如果不能被400整除,那么num该数字递减,直到能被400整除

				num--;

			} else { // type=2,说明是计算最大坐标,如果不能被400整除,那么num该数字递加,直到能被400整除

				num++;

			}

		} while (num % 400 != 0);

		return num;

	}

	/**
	 * 
	 * 薪酬查询的时候获得Y轴坐标的数字间隔,可以利用该数字*1，*2，*3，*4，*5获得Y轴坐标
	 * 
	 * @param min
	 *            查询薪酬中的最小值
	 * 
	 * @param max
	 *            查询薪酬中的最大值
	 * 
	 * @return
	 */

	public static Integer getY(int selectmin, int selectmax) {

		int basePay = (selectmin + selectmax) / 5;

		String baseStr = basePay + "";

		Integer baseNum = 0;

		String checkStr = baseStr.substring(1, 2); // 得到第二位上的数字

		int baseStrLength = baseStr.length(); // 得到整个数字的长度

		int checkInt = Integer.parseInt(checkStr); //

		int baseInt = Integer.parseInt(baseStr.substring(0, 1)); // 得到第一位上的数字

		if (checkInt >= 5) { // 大于5 则进位(即 第一位上的数字+1)

			baseInt += 1;

		}

		StringBuffer buffer = new StringBuffer();

		for (int i = 0; i < baseStrLength - 1; i++) {

			buffer.append("0"); // 给剩余的位数上补零

		}

		baseNum = new Integer(baseInt + buffer.toString());// 算出Y轴上的的数字间隔。

		return baseNum;

	}

	/**
	 * 
	 * 获得薪酬比较功能中的Y轴坐标
	 * 
	 * @param selectmin
	 *            第一次查询薪酬中的最小值
	 * 
	 * @param selectmax
	 *            第一次查询薪酬中的最大值
	 * 
	 * @param comparemin
	 *            比较薪酬中的最小值
	 * 
	 * @param comparemax
	 *            比较薪酬中的最大值
	 * 
	 * @return
	 */

	public static Integer[] getCompareBaseY(int selectmin, int selectmax,
			int comparemin, int comparemax) {

		Integer[] basePayArray = null;

		Integer newMin = Math.min(selectmin, comparemin);// 比较查询和比较的薪酬最小值

		Integer newMax = Math.max(selectmax, comparemax);// 比较查询和比较的薪酬最大值

		Integer baseMin = getBaseNum(newMin, 1);

		Integer baseMax = getBaseNum(newMax, 2);

//		System.out.println(" #### baseMin " + baseMin + ",baseMax " + baseMax);

		Integer baseSpace = (baseMax - baseMin) / 4;

		basePayArray = new Integer[5];

		for (int i = 0; i < 5; i++) {

			basePayArray[i] = baseMin;

			baseMin += baseSpace;

		}

		return basePayArray; // 该数组就是Y轴的坐标,

	}

}
